/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sv.com.bolsaTrabajo.util;

import java.io.InputStream;
import java.util.Locale;
import java.util.Properties;
import java.util.ResourceBundle;
import javax.faces.application.Application;
import javax.faces.application.ViewHandler;
import javax.faces.component.UIComponent;
import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
import sv.com.bolsaTrabajo.resources.properties.RecursoLocalizador;

/**
 *
 * @author 43579648
 */
public class JsfAyuda {

    private static final String RECURSO_IDIOMA_PROPIEDADES="sv.com.geolocalizacion.propiedades.recurso";
    private static final Properties propiedadesSistema = new Properties();
    private static final String CONFIGURACION_APLICACION_PROPIEDADES ="configuracionAplicacion.properties";

    public static void refrescarFormulario() {
        FacesContext context = FacesContext.getCurrentInstance();
        Application application = context.getApplication();
        ViewHandler viewHandler = application.getViewHandler();
        UIViewRoot viewRoot = viewHandler.createView(context, context
         .getViewRoot().getViewId());
        context.setViewRoot(viewRoot);
        context.renderResponse(); //Optional
                 
 }

    public static void restaurarValoresFormulario(String id) {
		 UIComponent content = FacesContext.getCurrentInstance().getViewRoot().findComponent(id);
		 content.getChildren().clear();
    }



     public static String getPropertyValue(String key){
        String valor;
        try{
        ResourceBundle rb = ResourceBundle.getBundle(RECURSO_IDIOMA_PROPIEDADES,FacesContext.getCurrentInstance().getViewRoot().getLocale());
        valor =rb.getString(key);
        if(valor ==null){
            System.out.println("Propiedad no encontrada");
        }
        return valor;
        }
        catch(Exception e){
            System.out.println("Se ha encontrado un error al buscar la propiedad: " + key);
            System.out.println("ERROR: "+e.getMessage());
            return null;
        }
    }

    public static String getPropertyValue(String key, Locale locale){
        String valor;
        try{
        ResourceBundle rb = ResourceBundle.getBundle(RECURSO_IDIOMA_PROPIEDADES,locale);
        valor =rb.getString(key);
        if(valor ==null){
            System.out.println("Propiedad no encontrada");
        }
        return valor;
        }
        catch(Exception e){
            System.out.println("Se ha encontrado un error al buscar la propiedad: " + key);
            System.out.println("ERROR: "+e.getMessage());
            return null;
        }
    }

    public static String getPropertyValueFromConfigurationFile(String key){
        InputStream is = null;

        try {
           if(propiedadesSistema.isEmpty()){
              is=RecursoLocalizador.obtenerRecurso(CONFIGURACION_APLICACION_PROPIEDADES);
              propiedadesSistema.load(is);
               System.out.println("Fichero de Configuracion cargado exitosamente");
            }
            return propiedadesSistema.getProperty(key);
        } catch(Exception e) {
            System.out.println("Se ha encontrado un error al buscar la propiedad: " + key);
            System.out.println("ERROR: "+e.getMessage());
            return null;
        }
    }

    public static String getPropertyValue(String key,String fileProperties){
        String valor;
        try{
        ResourceBundle rb = ResourceBundle.getBundle(fileProperties);
        valor =rb.getString(key);
        if(valor ==null){
            System.out.println("Propiedad no encontrada");
        }
        return valor;
        }
        catch(Exception e){
            System.out.println("Se ha encontrado un error al buscar la propiedad: " + key);
            System.out.println("ERROR: "+e.getMessage());
            return null;
        }
    }

}
